/** 工具 - 数据转换 */

/**
 * 任意字符脱敏
 *
 * @param text 字符串
 * @param empty 为空时内容
 * @returns
 */
export const fixedAnyString = (text, empty = '-') => {
	if (text) {
		let charArr = text.split('')
		let result = charArr.reduce((arr, next, index) => {
			index > 0 ? arr.push('*') : arr.push(next)
			return arr
		}, [])
		return result.join('') || empty
	}
	return empty
}

/**
 * 手机号脱敏
 *
 * @param phoneNumber  手机号
 * @param empty  为空时内容
 * @returns
 */
export const fixedPhoneNumber = (phoneNumber, empty = '-') => {
	if (phoneNumber) {
		let charArr = phoneNumber.split('')
		let result = charArr.reduce((arr, next, index) => {
			index > 2 && index < 7 ? arr.push('*') : arr.push(next)
			return arr
		}, [])
		return result.join('') || empty
	}
	return empty
}

/**
 * 文本截取（去除html标签）
 *
 * @param text 需要处理的文本
 * @param length 截取长度（默认不限）
 * @returns
 */
export function truncateText(text, length = 0) {
	if (text) {
		text = text.replace(
			/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i,
			'[图片] '
		)
		text = text.replace(/<[^>]+>/g, '')
		if (length) {
			let ext = ''
			if (text.length > length) {
				ext = '...'
			}
			text = text.substring(0, length) + ext
		}
	}
	return text
}
